home *** CD-ROM | disk | FTP | other *** search
/ CDUTIL 13 / CDUTIL #13 Julio 1995.iso / windows / dbfast20 / misc / graficos.prg < prev    next >
Encoding:
Text File  |  1993-11-16  |  3.2 KB  |  118 lines

  1. *GRAFICOS.PRG
  2.  
  3. erase
  4.  
  5. chkevent()
  6.  
  7. @ 24,0
  8.  
  9. declare ttle[10]
  10. declare nums[10]
  11. declare num2[10]
  12. declare lbl[2]
  13. declare pies[5]
  14. declare pilbl[5]
  15.  
  16.  
  17. * Este fragmento de c≤digo crea ciertos datos de prueba para 
  18. * los tres tipos de grßficos. Normalmente, utilizarφa el mandato 
  19. * FILL ARRAY para extraer datos de una base de datos real.
  20. *
  21. * Crear datos de prueba para un grßfico de sectores
  22.  
  23. store 1 to count
  24. do while count <= 5
  25.   pies[count] = count
  26.   pilbl[count] = 'Sector '+str(count,1)
  27.   inc count
  28. enddo
  29.  
  30. lbl[1] = 'Real'
  31. lbl[2] = 'Previsto'
  32. store 1 to count
  33. mdate = {01/15/89}
  34.  
  35. * Crear datos de prueba para grßficos de barras y de lφneas.
  36. * Los grßficos de barras y de lφneas tendrßn diez elementos.
  37.  
  38. do while count <= 10
  39.   * N·meros de prueba para grßficos de barras y de lφneas
  40.   nums[count] = count * 11.25
  41.   * N·meros de prueba para grßficos de lφneas
  42.   num2[count] = nums[count] + 50
  43.   * Tφtulos para grßficos de barras y de lφneas
  44.   ttle[count] = substr(cmonth(mdate),1,3)
  45.   inc count
  46.   mdate = mdate + 30
  47. enddo
  48.  
  49. * Al seleccionar un marco de imagen, se crea un rectßngulo alrededor 
  50. * del grßfico dibujado. Si no hay activo ning·n mandato de marco, 
  51. * se selecciona toda la ventana.
  52. set picture frame to 5,10,21,70
  53.  
  54. *Este es un grßfico de barras
  55. *La sintaxis es 
  56. *draw bargraph [HORIZONTAL <expC>] [VERTICAL <expC>] matrizN, matrizC
  57.  
  58. draw bargraph horizontal 'Meses' vertical "Ventas" nums,ttle
  59. @ 0,0
  60. set message to 'Pulse una tecla o haga clic con el rat≤n para continuar'
  61. wait ' '
  62.  
  63. erase
  64. @ 22,0
  65.  
  66. * Este es un grßfico de sectores.
  67. * La sintaxis es 
  68. * draw piechart [HORIZONTAL <expC>] [VERTICAL <expC>] matrizN, matrizC
  69.  
  70. draw piechart horizontal 'Meses' pies, pilbl
  71. set message to 'Pulse una tecla o haga clic con el rat≤n para continuar'
  72. wait ' '
  73. erase
  74. @ 22,0
  75.  
  76. * Este es un grßfico de lφneas
  77. * La sintaxis de los grßficos de lφneas es
  78. * draw graph [HORIZONTAL <expC>] [VERTICAL <expC>] matrizN[,matrizN2...matrizN10]
  79. *      , matrizTitulo, matrizEtiq
  80. * Debe haber un elemento en la matriz etiquetas por cada elemento de matrizN a 
  81. * matrizN10. Cada elemento de matrizN1 a matrizN10 es una lφnea de puntos de datos. 
  82. * En este caso tenemos dos: nums y num2
  83.  
  84. set picture frame to 5,5,21,75
  85. draw graph horizontal 'Meses' vertical "Ventas" nums,num2,ttle,lbl
  86.  
  87. wait 'A punto de dibujar en la impresora. Cierre el programa para no imprimir.'
  88.  
  89.  
  90. * Establece un marco para toda la ventana
  91. set picture frame to 
  92.  
  93.  
  94. set device to printer
  95. set printer to graphics
  96.  
  97. * Recuerde que el mandato set picture frame se introduce DESPUES de set printer to graphics
  98. * Un marco que se haya creado para la pantalla no puede utilizarse para la impresora.
  99.  
  100. set picture frame to 5,10,21,70 
  101.  
  102. draw bargraph horizontal 'Meses' vertical "Ventas" nums,ttle
  103. eject       |Necesario para que el spooler divida una pßgina
  104.  
  105. draw piechart horizontal 'Meses' pies, pilbl
  106. eject
  107.  
  108. draw graph horizontal 'Meses' vertical "Ventas" nums,num2,ttle,lbl
  109. eject
  110.  
  111. set device to screen   |No deje el dispositivo establecido como impresora
  112. set printer to 1       |y desactive el spooler
  113.  
  114. * Redibujar el marco en la pantalla completa
  115. set picture frame to 
  116.  
  117.  
  118.